package modularity.passiveDrift;
import java.util.concurrent.Callable;

import ec.util.MersenneTwisterFast;


public class MutationTask implements Callable<Object> {

	protected Genome<ConnectionGene> genome;
	protected int taskId;
	protected Mutator mutator;
	protected MersenneTwisterFast random;
	
	public MutationTask(Genome<ConnectionGene> genome, int i, Mutator mutator, MersenneTwisterFast mersenneTwisterFast) {
		this.genome = genome;
		this.taskId = i;
		this.mutator = mutator;
		this.random = mersenneTwisterFast;
	}

	@Override
	public Object call() throws Exception {
		mutator.mutate(genome, random);
		return genome;
	}

}
